/*
 * This is Melet, a salary slip designer. Feed it with data regarding to salary payment, prepare it for print through the graphical presentation, and you have it done.
 * Copyright (C) 2014, AFDiaX
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * This program is based on UMLet, a Free UML Tool for Fast UML Diagrams.
 * To contact the authors of UMLet visit https://code.google.com/p/umlet/people/list
 * To contact the authors of Melet visit https://gna.org/users/gabocze
 */
package com.baselet.element.old.activity;

import java.awt.Graphics2D;
import java.awt.Point;

import com.baselet.control.enums.Direction;
import com.baselet.diagram.DiagramHandler;

public abstract class WhileElement extends Element {

	public WhileElement(DiagramHandler handler, Graphics2D g, int padding, String id) {
		super(handler, g, padding, id);
	}

	public void connectTo(StartElement start, StopElement stop) {
		if (connectOut() && start.connectIn()) {
			Point from = getConnect(Direction.UP);
			Point to = start.getConnect(Direction.LEFT);

			getGraphics().drawLine(from.x, from.y, from.x, to.y);
			if (arrowOut() && start.arrowIn()) {
				Connector.drawArrow(getGraphics(), getZoom(), from.x, to.y, to.x, to.y);
			}
			else {
				getGraphics().drawLine(from.x, to.y, to.x, to.y);
			}
		}

		if (connectIn() && stop.connectOut()) {
			Point to = getConnect(Direction.DOWN);
			Point from = stop.getConnect(Direction.LEFT);

			getGraphics().drawLine(from.x, from.y, to.x, from.y);
			if (arrowIn() && stop.arrowOut()) {
				Connector.drawArrow(getGraphics(), getZoom(), to.x, from.y, to.x, to.y);
			}
			else {
				getGraphics().drawLine(to.x, from.y, to.x, to.y);
			}
		}
	}
}
